Skip to content

Conversation

@oncsr
Copy link
Contributor

@oncsr oncsr commented Feb 3, 2025

🧷 문제 링크

https://www.acmicpc.net/problem/1486

🧭 풀이 시간

25분

👀 체감 난이도

✏️ 문제 설명

2차원 격자가 있고, 각 칸마다 높이(0 ~ 51)가 존재합니다.
이동할 때는 인접한 상하좌우 중, 높이 차이가 $T$이하인 곳으로만 이동할 수 있고, 이동하는 데 $\max(1, (높이 차이^2))$만큼의 시간이 걸립니다.

(0,0)에서 출발해서 시간 $D$ 이내에 다시 (0,0)으로 오려 합니다. 이 때 갈 수 있는 가장 높은 곳의 높이를 구해야 합니다.

🔍 풀이 방법

$dist[x][y][v]$$(x,y)$까지 오는 데 지나온 최대 높이가 $v$인 경우의 최단 시간으로 정의하고, 다익스트라를 돌려주면 됩니다.

⏳ 회고

처음엔 3차원으로 둘 요소로 이동 시간을 생각해봤다가 25 * 25 * 1000000이라 시간 초과가 날 것 같아서 자연스럽게 다른 걸 생각해보게 되었습니다

높이 가짓수가 적다는 걸 관찰했고, 25 * 25 * 52로 줄일 수 있었습니다.

@oncsr oncsr added the success 👍 해설을 보지 않고 풀었을 때 label Feb 3, 2025
@oncsr oncsr self-assigned this Feb 3, 2025
@ShinHeeEul ShinHeeEul merged commit 24c410d into main Feb 3, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

success 👍 해설을 보지 않고 풀었을 때

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants